package com.sakiko.controller;

import com.sakiko.pojo.User;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.web.bind.annotation.*;

@RestController // 组合: Controller + RequestBody
@RequestMapping("/user") // 与 knife4jConfiguration配置类中定义分组匹配前缀路径一致，否则无法生产 api文档
@Tag(name = "用户信息管理")
public class HelloController {
    @Operation(summary = "根据id获取用户信息")
    @GetMapping("getById/{id}")
    public User getUserById(@Parameter(name = "id", description = "用户主键", required = true)
                            @PathVariable Long id) {
        User user = new User();
        user.setId(id);
        user.setName("zhangsan");
        user.setAge(11);
        user.setEmail("zhangsan@email.com");
        return user;
    }
}

/* todo:
    @Tag(name="")`  注解用于对接口进行分类，相同`Tag`的接口会放在同一个菜单。
    @Operation(summary="")`用于对接口进行描述。
    @Parameter(description="")`用于对HTTP请求参数进行描述
    @Schema(desctipion="")`注解用于描述作为接口参数或者返回值的实体类的数据结构。
 */